<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <meta name="theme-color" content="#3367D6"/>
  <link rel="apple-touch-icon" href="/icons-192.png">
  <link rel="manifest" href="/manifest.json">
  
  <meta name="generator" content="Hexo 6.3.0">

  

  

  
    <meta name="author" content="QAQ">
  

  

  

  <title>Nginx例子 | QAQ</title>

  

  
    <link rel="shortcut icon" href="/blog/favicon.ico">
  

  <!--mathjax latex数学公式显示支持-->
  
  

  
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/typeface-source-code-pro@1.1.13/index.min.css">
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/highlightjs/cdn-release@11.7.0/build/styles/monokai.min.css">
  

  

  
<link rel="stylesheet" href="/blog/css/style.css">

</head>
<body>
  <div class="root-container">
    
<!-- header container -->
<header class="header-container post">
  
    <div class="post-image" style="background-image: url(https://qiniu.sukoshi.xyz/src/images/68686407_p0.jpg)"></div>
  

  <!-- navbar -->
<nav class="navbar">
  <div class="navbar-content">
    <!-- logo -->
    <div class="navbar-logo">
      <a href="/blog/">
        
          QAQ
        
      </a>
    </div>
    <!-- link -->
    <div class="navbar-link">
      <div class="navbar-btn">
        <div></div>
        <div></div>
        <div></div>
      </div>
      <ul class="navbar-list">
        
      </ul>
    </div>
  </div>
</nav>

  
  

  
  

  
  

  
  

  
  
    <div class="header-content">
      <div class="post-text layout-block">
        <div class="layout-margin">
          <h1 class="title-wrap">Nginx例子</h1>
          <h2 class="title-sub-wrap">
            <strong>QAQ</strong>
            <span>发布于</span>
            <time  class="article-date" datetime="2024-04-08T03:31:24.000Z" itemprop="datePublished">2024-04-08</time>
          </h2>
          
            <h2 class="last-time">
              <span>最后更新于</span>
              <time  class="article-updated" datetime="2024-04-09T01:39:51.339Z" itemprop="dateUpdated">2024-04-09</time>
            </h2>
          
          
          <ul class="wrap-list dark">
  
</ul>
          <ul class="wrap-list dark">
  
    <li><a href="/blog/tags/Nginx/">🏷️ Nginx</a></li>
  
</ul>
        </div>
      </div>
    </div>
  

  
  
  
</header>

    <!-- 文章 -->

<!-- 文章内容 -->
<div class="body-container">
  <article class="content-container layout-block post-container">
    <div class="article-info">
      
      
      
      
      <section class="article-entry markdown-body layout-margin content-padding--large soft-size--large soft-style--box">
        <div class="hbe hbe-container" id="hexo-blog-encrypt" data-wpm="抱歉，这个密码看着不太对，请再试试。" data-whm="抱歉，这个文章不能被纠正，不过您还是能看看解密后的内容。">
  <script id="hbeData" type="hbeData" data-hmacdigest="0228f87ff7741836e5bc62649df4d0dd24fe4e2dc14e8f615d0c45b61075168f">f5d7027a76d40f8b4fe5a79716a716fbecb20eb8f4d5001876237e810c3efb1e2f706a561e981a7fceb781a41108e54906bd0c871b44e2b5001e8db9ef7f8e4deff66a9c88c2791060b4f0515bd3d93c696618012dfb63c26d1ed48b026e6655a91393bf811617ae585127587a1101cbbf2f10e1b76f3aecaccfccf42d2fabd2a396012b948d8eca451e11922afeadbeb728748a913b530843e87c5fc3fcfb513a53113290ad019cd56a164ba3b9bfc3db3aa1744ba11b9ece5973cc14d97e82698f06c515a73ea67e5380ef04820459b873882c2f5a7986cf7d71c95461b840108e9236242c141689a521a3d421a08e7ec491caba36b199a9e5c25748abde9fab0b6e4bc620f58bf5482f59dbf7527625bbbb710f3eb0effd4d15a092f6ef1a8feec8af951b0c3ff8b10a2f02f3b2a1d9949a53dd0149ef5cafebb14674b89218af56a7fd4ba02486de27a8f2d8a060b344b83f5e8ae0253eb5c61b9785172483343254faa443807ea20949afb54dcb58f54fec9cec2477a13ab701f8d23f6f48a70adf2563a3c3b6e3644e3c7ec70c42a520a0a840255dd94f0f726d49e555dde566ca10a578fe812a4c8f3aea7cdac873d9dfa4de7a8f0262fc97209a1b01d2a33f9468601fa1bbbec5d4b1c7568073a63afd9bbfa0d438e0ab513ee83761d615e53b5c2939467c0628620f4d9d43c43fb6ed671159b0075b1feec2a3ae66d09a739a87ba8bd0a5f307bc10d29875ec74fb085b83f016ed7e9d7343409f8c2acb1b96be75aad5ac8e2ac54e35409b082af4c41ef3638098ce243b217835d9eb69ed2cad149c737262605f18a7c45a9fdbaeaca7100d2c5bb1fd4ae6292631f74d7998be2bf1bd4eb030df3eae6daae55b8b201bb0afa7b22a0b9f76c1f86a2b8f42ea8b400ad6161c5ce737c00e35aa93cd4552974f7995ef27839104bc73cf319b24bf4057f055c19c4d30f8fc50e85e1168d4c312296ec9ef9c263521a3badd97c5e54a2f62101ff53c9c1a602092f05dc2b232e160124c8de908e94ad6269839ff77cf70675ee40cb414b8c74de391f9aa29a6f8c30da2b441f5291497f8b39ec54fdfd18b198f753b53d5fbd7031edfe4e521de39cc7c22afd0fa1ead15ae4050e9e04696f655e402b62fe66c503034443bcb7405afae0e5c1506e7ce09737852e4ef6f27f19b9bd9f697dbc25ed9dda53bbad820f84ca04b0926ae364502afa36d36930e1d5d2f53220957dd003e829099b6c66ed1a437eb8f9748eb37a911d0443d118fe7ea203dc4ade6217ddbaac38885aeaabdf7501d4af55db736712a922b69c5a330e604773bba4d5ac17d96fa1e8f2cd13c118118197e0fd0484d824efb81a7679c6968df498caee358c214cdc411fd792835ce62da52ddd4922d6052a74767be07fc0ffd684bd3b7f418bec1aba836c43eb60c6f80ca79a72c63c36c0eac64a260e05fdc0ba2126933301d2725825e881f0412378042a56293924426896c8cd7378014f8d96e181ba4d77f6ca602db4cf2e7b22c48800e2a3261d42910db8e3f8016c0cf1a36f587742c9c19dd5095b9f21b9ade273ec47627c4fd79d63efd21fb326015968a300ed222c473b5cf08bc893d87e1bf8937c92d62d781470b885b78ca3362a34036a4dfbcc82dbe080e8d74f6560652b401a3a9ccc651eb1fb3167207ceaf7df7cf6054525ac9d1322a32e852426931590d3855c49a9a4e22dd6c3c9eea40f5570c8a2ae05ee14e967a707ec95443cd6a290d7648ca9cfd6bf08648364df3516a9415a464aab69ac00c2b0384712741f1602596c7c66e0e74c284d98e8e8072e147144064c2821a18032c1da132433c44d0745d259cad13f4896f99825ccdeef83ccd3a68c8cf8f3f9bbc92abf95bb93721d40aa77242121b9e1f63311a69a250f5a0a27a9278254107603c93b641b9a2f641578c1b4e0bd06ef14234684ea591234f86ff567ff63d82ca4043f9c6606f2d9ea8f403cf2cba3cb04766e536b341d33a8925ef4fc1eeea7aad203c1dd9e242de632cdb99c592150806188ebd788d5976f46b559a4238b338a83a7aaffcbc4c13fcd2a6a9842d7a8b3102675fc2f9c23606a59ee79c7b3ceaa0db62653775c8fe98dca544b2222e1297985cdf0399cf185679176bd6286807213a1d68a44d2e4dcc04e2a3b78079dfe4062874661376f4de3a59c1b666f41fb9d45d0580e623fb90b984e930421673c9ce1f678959e7f2ff982868a0002c5bb2b5a36b98ab200f8a0c383852acbcb60689e81e2d94a6a36a85a8ded52e756b379897191c2275ccb94e922c457d7edaaed4b6fdcdc488088ec695b2634d40671d188a36df1a7969591c365af56c853739f9b7786f1f69ba7dc825df23ae9bd13b7ecc0d516e2517a9c43f8e8dca950d418ec2906f23a3c5c19b231777f50f669f26791db086136796c251b2b27610be8781a48e23f0141eac8cd5b7bd3aa6d48f6777c4d09d64cc2bb2d41a1482ab51ac71c6bc8df93a453397328ac8bb7ec119ba0412eaa38082b66e3574fcb62bee742730160760f67776d1f43b049874fd6babbe9875e216469cf547f454aa722678d85fa3a917b748ae99cc195d4c9e66556add60c471696e99f88cf0205d3ecdcce5d0a870e528c0a2ef50ad46a2f0eb29f8f63cebe70fc08a5e3640742e3c5f1cfc78b7db0e83d7535942a0d1b58dff181ae1e1aa02de67f5f8dee01173bf3cfaddc4725a0a4ceabf01c88b590a0fcc4190e6bfb1001fcf467e21131542d9895dd2d1c697ff0383f3e72e0431ee145958a04e9d5c3998e980d45037ce23979e8adfb4e50cdd7e7bf9dfae0b63d30a08d76a3bbe5859d513081607e22c7f72f21b4b2779c483cc8a29fc899aafaf08b49f7dbd54aa2e7ba59fdbae8b911425fe39c05afb86e10238d6941647a0df62f0781eb14a617212706590ccbb18eb7b517fa35876dde72b8d4e7ef10bca488335128e380503ab5ca263962c8390bbab112a1c38a1aef777d742dfe007e598e3247923a2d926de6dc3663e0f71c8e4603b913b22ad374d18be8a1c228d1322514786cdd7880db39767d2a02b364610b4d8ee6321936044013ff83d1bd594a5a6803f854bd044405dc6fcf155cd6b3557b2f809e7b943141ef605f3d9073053ebf796ac9cf944419aea2532a4a6883a8d3e35826abcc5acf6bf192d7dd0c6965886465638570ee2f605cbea5d62ff79ee9c72905ff9b23ccdac5d7d7fb6d2d29dec69f31e1c952160193156b3d37e1f7238c91a279b2912caadb8d2084d5d768657c86d4a204ba1c557c7495cbc7ab73a55ff3953ceb553c689ecde45d98f52fa58b9786d3d080c3b0e68bc6e1372d4104021b42f4e83ab0d845488145769dd4773b4df4f9791881aa85193091af7489708f95c223cac979edec4c45a5bd9b5fd089170b82d866bd397b2f0dbf2cf866eebeda081fbf1a88ad68b94d9eb0cf38bebc3f6073b187da974b047c7d3f71491e1a37a7e312014ec6864d6eb0e2cf0dc9b75db99c0b636de287299ab06c92bef1591e392cd17fffad8d332882fed6f5d596f6416c34fe057be961f62f87f398e371c2015b27fd9a63db0a64913ea081a89c2398c6ce42fd38f30f63bb1b484a44d9738dc1c42ba4ddf3968547651a707e65776d8ee345173a61750014aaa66d9debd8479a4dc5435bb801f70dccd5483edb1c7118eb6c26ec0be6935a6a763edd2bd61d1fa2e14ebca719f2e8e8199a9d379fc4050776b0c4b6436325fe4cad82408129ea237fe2361805ab2e76747fd1694f221e358843436de1994250af8d6c02d0a79a4b8acfb059e9cce97497546d240bab695e8433e5d74ab1e533835874991be2457677319a36a2dc1530cb0f114f1fd0ae59cb34f6f8c755bdb9416ffb99ff40cd42d7393a59d1b19b2a19b14ee591a2e161b08c9d8872bd9febc194cf8cd0e0f3d21cff8a2492ba787a500529b80d4c24f687199069c27d0a7bfe4106aeaaca7c201a4f411a78250852f0c154f195006d71223db85c5c88521ec1dca1e816ed70961acf8c56c9b49b8539c9ee0850d343ba4dba9b67164b501dab1fbd4b0c64073c7670efc2b53053682e09587a531fb2607ba719e37aa0a4c127d1868747e8105ed4c5893594842c91374c852c02b2ff93b9d3f391fb7c671fc19f2992a8058f448aa8cfaa404b23c1bb78646e1b85e71214680a6b000bd691f95d37922054fab686ff2d768e45ad1151ad372306200f6a0bc3a96e704b34f7236863f1aa8bd87d8ff99d42f45d63d6830138d41b6012abfa0b69cb913600794d80281d49c202e80b08518ab09cf36e5000bcabf9d3f904d96e8414f4ff2605007acb72ff5d74e191c5038447d4936311eaca01045f22cea9fab7681feb776ad231545593a3337d969f49ce44fbb50eeb0c02a8268355fcfde93cdb0f4e0a609cc18e5f5ceb5005c73b30c0abc99e0aa7b4dd20f7a83bafa0219c06573f4bf94ce26f8852e6d7315d85c3921a519907192e6df2cbbb0e8f1221e2828385fddd189c41802b21c70df9307a54e06facc66d2c5b7ac3ddc183bd0804a4d304e6ea9b71707c893002bc85d76a70b2698352919f7b98eda9c105dd83d406cd653564a609f85af43c8a07549302ac42d7e325d4e0336322d892f933a25d89a5cedac30ba9379a96077fd9248d3eec5ec79236e91ce2eec8b1281d42090d17082b7ce2d21a0fc40fd1fa1bc6264d55246e8b262008eafb9c2be35676f5d605091e7f382eac0c62bfec1c403f12266d935cb116b9838c421bda27a25043e042ece325bdb82576b314e0d8321845168d4e10f83ee9fab05dd7065675a6506022749158a0786fbcabc83e0e2de78f40abcfc900c1bf7d38222a888e88bb339446904158132ae01dd2234ed2b03a630caa7d34c4a7e7da2926d850395135b824fb71c444273e3cd004a23ab2c13e8ebfe020f8226c8ccc1c0e7784ccb6513f9ef4d23299b6da96e11a837a049572e2e8fc11ce50f95c052504a641e02fbadf4c0dddb3960fd424e8448e4519e03b97d09b23be25c49f52ae465378aa63014f0d2bd35c8c592ea0dd81499fdacf24e3976eb297381f6a8324e2194c619d339096180b9369b2cf25866d43c7b18a154c4dfd4a1c516541d76850a6e3389aa9f9f808452ecb1764a8f82cb66540c73f0a0b7f93c0ed487264ecd956b002a0fe9068c2c116d694b0f0a71091a1ec68c703e77e6f565edb499a4744c3e97bb2bbfd075814179940875f7d8fdcf4d44832e6fa31f9e2bb9c492f10c8c39a8ede86f6deabd051e259f453cef80dd212f83764f30534565d6c411d17a88fcedb17d5d6de2b1b8efd93ffcabb1b997fb90f10077c514a2fcca4881368f03c24a2cd8b2a9e57fe517d77cbc3375009e7c8c3fc27399bd46db87493a528a6ec6658d141eb9b627f463c06c981bfb1cf07f6f414983be2e93880658fdffde4a8d19f19af0fb65423cb36f7a506e0b7d06f671883d1aaafe6bc8bf34afa873b4ed7df47c2a28f2982188ec9133e9d5fa324709dd0c1778f473e8f0b66f8e1f17850e89afac9f36c5967fd6de10c5ef9ea84f0556c9c6ad780dfc59b770b0ea4f54ad17b85e4bafd137d316153b4464db5900a86d07f3a30fe1798cdea442009b4452cefdab7d23b4aa04dd5ebbc3bbfae6f2d5b8b1c7ad24966aee16168d2b086a1c575993f51b9d92cde7c846798dfa09ed0cd6557bb37f2e3d7b886e7e560aa9a96855f9f9aa4b79b3cacb84b224bb03a2dd9a576cfc7e897ba9a75b7713653ce5add1a5a2c40f96257ca550fc8a59628a11d3e81ec5cd5f69fee9fb02c4b9d25536d7fdecd08701ce6c402c4f815c1df3339c1bc79349e73ca2a4556309575814658d5fa6324236f1f321804bb22ed617ef5320f7e49ba7f18a5ca6dcc4b2856fc31dd645c48764e2f4be88f5b62fd0ebcdc97feab67cfac9284d6fc9b883e10be1031771661c6ae127fa73a70eced06cbe2370fa7b623040a17a3a2e8ec5db7b1fc81f19a2aa0c2e7a5e61400993e16313f2f6059ed8aff63e0381514f5eec539df2a5828a7da6c88542fee3af2074ae7d64ed5824e691e630e275409f0ba7381d65a60d64a3d9962320e89e44cf6b02ffb9b173b3929b679937902165af77c90aff28c19ff338477ab58a9806b6e695bb9e734ebcdff308195c1480791785d9b2d09f00db588c8a41888de72637bf13a0b607a830b509e707607ddb18c657dabc505c26f738968e78bfb8a0dd8d2f9b4b4296e7afa8bf20c1b0afc65792b1c4a4340a5ae3587a92bcbf48c7b565d38388af41bb5363d7df9eeb70f2cd6b848cba42a592c478777a8b1152ed432fd01dc4dfb411dcfcfcaa1009e9d2929de10c2dddcf1c7da63c4bf0d0b9420ec4581b3351c25728c66d66cf7c610b6189dfef999f675b6c2127c41ee2b29eabf89a153051cc2d84d1b5a35119ea6158a392ded31e13545d8de59563c009eda0df14cae78a0306ed7ddf26689b224a72499595b25ab2d505585ee5a5c86257c6cf4b33c3c95a24301116c1cfeb1d5b0654f933e11749f3b881e7bfae764960464db0f690369cdc9f06e51c26e9a0768d5e307993ee5ab711cac294520e59e55603d8612b83b51887544367f4d800ddd617bd5b81c1d2f2fe1b814a3749f37121f29d7991357dd4b5da7ad08efba68198ee2f40d1c8c6b3eef3da4dc16642e09ba7b8a894014e4a5c602951915e1b58f84b6b48f321290592ea08a540cf24d91f792e8070141d65d601db52c49cce58b6898767d2440834039ff1cdcec61819c450b7bf272497ebb77e340e20f7ad1927fbb59383f1f590e8d78b23182b714ad240afe693506e779668ae111a7fbde7861908bcf8caa3548612279037768e5889572ae94ae8d5e06a3019039de1a1928d4f57b410aa6f6dfab4ef75b9599dbc9c3443813826e3d900dd5c8bd6fd94fe5688947305134894c69820b2ec47c69d3db7fd846a9e5e440710eafba16a0e6c03ae7111f27e6a82c1d4913d6f62e252eeaf5c7c1784661dae07eacd41b4208537ff71409453723060f7e63d07e4ac8f713f2a292222a43eda8f3553510b00184d19e0d99390fd13557887468664f4d6ff66b9db100721ed0c48f6c2fd0a660b7bb5539e1270cf79c5d0e6000634c9652976537e7622e2bf0965d9e93df8b45604040f92815d8a906e73cd74f0e472ac54f07fe72001c8ab1c80592e244ea5cffbfa887bfa426ec9ba84d94a5da55301b4257a08e50b846391e2fdd657cb40a32fd9400676fba5da09455c653c979aa3c2db1833ab9ba32aa2a4a22524946a8295563a1cb62cdfaf6d727023b9c59ea28a8a2b2998eaa6ecef43671f9ed5a24e5058485268776d5e60d7b4dc17e79582988e9d41b95700a113b2b5e7b65a27d1504e078e7837ec3976d3fee72bd311383773d5fc87583a8db804942a01e0d6e457342f33f12db6df9bcc76ee828af8db93c5a33d57267d8c747fe85df59161f7f84edd6f2dfdea6203f8c176ab76aff32ddef3e7943a7ce2f23abdcdc1075fb78a53fa2b95124df314e1a1de0429521636453538e8e2c03ac9197dd4785612ba5ea8f9740b177e9deff4dfe2b9a0bb7d2949d50e3de3f1da4dd1f4c85a72dc97b6f161301c2425fadc8a4d8938a34889f4a8236fd4ce6d21e1cb76503ce794c68b80cb35357f681c467f184bf3ce25d810a0f60097ba0e0a95eba4f56a840e55cab81f1af0e36f781204bfadcdf55f6b6d8200722d87d0358360bc2f31d3776b8fb60c8b8e78947d44fa071bb5dad39cdbdb2a599db212e6c4e484b73ff23253d20bba726672798088c3bb361663328a571c2bfe5d5dcaeee93aa5a2851b9832534c941dfd568729af2e40666e7b283277086d458a1fbaf0d60fa9f463af71f2c19d7c77624c5e87ae8a7228adb447a0b7dee922c9269179342380af155e2a65b218010dcffd388f89d8c980f2fd52f2300f0a90eee86d1b1db3180be4e7a09103a067b16e3700ff01db02cd60f2025639c1b860c61be3373681da09663fca6264603ae751533e218c93e80e4ea310cd7c86af0629894157f9e8995e9a73fa2323416e7e3284204bdb32b534c09e9afb8333f0f31bc206563b55905cbd9a9a442473f4bc875da7855859664f9224620890d39b0351e43ba7c8d51cd5d867c036c830c1fae8123f6cd77b81166611d4a77bdb4085571dcfa77ba107f00b80bd62078a7e8db45265d8c0394d77d82ac2ac436c88a473be084b78682be9aa07feddcaa47de391f491dcb9498b6cf75c2d8e9ecaeb0ad3fce3440f4945556ac72cc4f34dcfc8c0c36436a7e5a367b70c4aa7be0cc19d26b508b51dad0be14c1bba0b9db3a82a4bd6e40d45c691f8342e79265989ccdefc0cec0d6d4787c1dbd762341edcda448b0eef3a18ba96da0f936144691be5b6bbcac172b6c5fff3a6b85588d320e7b7a82b4520c3ec357e1bd6077806e74e6b67098b4547cd05b8290f79d0d74fe74e6230de0eaa8f0b8753ae5c9556b4f2a2340b0fc61741fbc9c6ae25b50ace1765112df81a0e3b3cf40ba07d96f0b846b68e52300f74947f6ac21c230bebca63a9b880978a4ca797a7b3cd4ac6469cad557d3dceccd6257509a3a8163b4c7874055acd704ce493480a5a6022fc89ca53856156039c465cf268d8f91aa91e815b193846de57c2ffa552a545261506e1d10272b1fa9c6e10a3538c20a5af91894ec330b1c4a9d5f0f8ee70c56b442590cbafe730b207c0eb090a9f9fe7b398d77d97fb298c6d976c490246aa6cde6bfd58dc6e37a2cf496baa6450d55272cef18990582687491af24eff410dd07e8e4c3f8a2afecf32ed6b026b15d76b37c34773f33950396f6d94c76ff34b9953af8fea62d37f545f6f46716fcdd61a4675c7111cd7930e28a65e5f029d650719997fd17f52221a834036044d1482811c2d9a65f886c02ec53fed04d77b0400e81e244f191102503b693b2c3906287c4af577df6b4966fb25bfee59fe8aeb7d79067b51842d85d636d2a500d96c2e22b83dfa319381085491a10265b8ae6dd10f14bbd9ea7b0ed451c4bc99e8fd1b428eef2032181150b7eb4932e982f484620f94eec2b42971d43a8f2fd8b2556846ec7a9c8729883a8b8aa7b28bf10fc951d18bf2a7a5baf77d7510fbbbddcea3f16fb06c673c20f8332a065728a766279f0cbbfabcfa584adf4b7bca5af214f6d0ee289ef25da07b951ae5509bef0089eca9c01ce9c9fd7ceabd89d6f6a18cf5adbeb821b786734b148865a8a8a8a700a87f4bed04571dfee45b5344080c0a4750ad3eb103076eefdb78862ea954fe0c436324ca742a52672c6736afb707bbbee9ce941e4418b939d1f0eda282c9133b14a642c7e34178d8a45569894937a4f2901f5c42e5b02f96b695a5deaa36b2fe73ea1b641dc7177a1750b26ddaafaca917f147371c5fabb4cc5409312cc4011c2cf9f223b3084cc285569fb21a5dbc5be04536d336c98e88ed0f55b0169f8fea0f61927cc36698fe6bd22c702195da7227d4a1fcb1798c29045ecfbe830bd125ce7665a1f76293daad1e879b25262ec9ce2b3b5fc79e81b661b9c00322f4986807469157e818ba5858ccef8960d183dd2af4bd413cc85e957543f2486e1b073490d5d99d887e891e38345bff7f9dca316a6ede1be7ce76953d4e702f50abb21f9cebe450c52012ef886abf20f5da53edfd901428cac31f67b95deb07fd8d1b092989165dc1606157b7ff22fe579e5ab2cfb7d1478e700bfec6676fe27d54a5ab9648c1e78b9334471729dbffb552ef51798e2dfab3043ca6d181fd121add372216976f4ba2899971e220687688f87f6d65d04238ada06456e5082ae325ea3ae74801cc534519d6e4cdf154169eca1fc966a87fb5570ad404925739631263c0df72c9eddc65e2ab7f42f0fee4ba84afc22d84b4dc770b1a7ef28fe9aa38fefb8da86f185689d4d70eeb13f0bb993be6018803f9c317ecf8b0f4a7bb78ae92071662c1e4a803c6edb97e593b887dcceae7e4c8db541e106fc2f596cfc3befd5b0cbcb4738510ec5ff39aeae1f38a2bfb12dbde0cb8b524b74b72c17be4aafb6f9210fe9e18514bad78dabc7d2f41c113b2745f976b0ac5e380397abb304b458ca98736a5a9e1320511d4a9898ae336251c011afddabb031034d71e3acbf8bb884ae504e533a6694f853ef78e6445de15488eca20518f9b939c3af0777ca4bb6fbae72188ecb140e024827d0d23b2fd0a8a5b9695e3667126c4d44a1930c588ed8cb5a6c9b0fc107c204922ca0a384bad172173a78a16a77a28da7b11f72df280c54c65dd03079662041125ac867068cb2357b0f8a9c8af13aacb42fa80cd35df1e562feaf65a9dfbe9d7c7b3b2682e7b9479903935c7c58844287420c75b338f5760713a3e456883f3e779646703e1ba4ac7079e5515a62f69216713ecf5839a0857a6922157ae5cb13be7a2bbfae2c07ffd9e18e60682faf15708a185c988c5852fb26f682a7e0ccd491e9552c2d0caa9e0198e04c1d7eca5aa3038250175fd487d2a220b5b51cfdb8ff22a1071995f96c8471fb36110146442d50fc47b204c7919dd07e77ce1077a8e965431384ae4f037b2d5e073b8414764b432761e99c7f22eb12bfcb4bb63d0bf24010988139cf1d9c5ff6a3902b83a473b03bff164fbe8db4e13f6fc63c874c959733934d846f9c6d5f5fa2504483645e30f6c32e05118a01a1cbc36385b9b66f53bc6ed0574b1035fc09eaff7965537908744514b382d7aa5ca2fda8dc285c0d0ec90369ef5dfc39777fc423766206a3f0b4c43d42670322d3e381decf7aeef7947333f7b9d273b5482b9fd51a6486b19f928ea79238a0de439070391818bf8699efdaceb5e06285ee7a49a9cd39676e90149abb5ccec2202600e8c8a76448326d2eb49374ceaa0ac24042fe0dd43f27c65974f35694b9e1e81298f139bf1b6912dd088aa8544e3e8835f00d02d7e60f6ae3652b8e6fe8268c413eff6828b39ff1e145e78a4f30de6943467668e76f3544abc8d5e05fe586d6389c91b5f1f9eee355745e02d208dca6d1bb39fcddcf9c4c343f09475f9b4f1f9428783b4a5cc2878981855852d422297bd0fb0dfbac0a443eecd79650903a8027747bb0a1be22fb03dc06b0732a0edf99349e29668559b1200db39a910aece3f6067b5f4678ff0c35777db743dcd48742ecc502e3537642ae064ca2dcbed5eb3b2e96db4a8cf546416c8c8f33215c4dff0da02e8c8d1f8f19528bfe0507b9f8323248fbc944da36f8d7625ef4147a448fd4411cec850f3ad4535d04e33add9b36cda40a2263ad76659fb1ca99c861b10dc3a0f4fae8cb20071cec1af78605cedb794ded45c797e531947eae42e429651c1401e1a134cc2e31edeb62c54b4e43bef956653b45b8f59d9ccf23999faef4afeb7bbfa61c55defb5a7d6c9b41121acce2b7d9bf60f3eeb445280ad09fb907024da724d44e8bae75c4d2ba42a08de5964e919b9adfa4b3654488feecc2a71d7b8f723c73221625a2147c2287456d6c8acef250f12b4b37b2b0de3eeaa106189c08f54470bfd8f4915c2d583e147efef5662f3f987027a9506355825b769055ef2f3a86bdf3e22866503010c9b8a98e4672ef33a6046b476fe4c847c29366afbfeeb9ebf4858328e8bba44f1d5dc34b24bcea481fab5d23b93b874f1bbcec68c693f7db03c3e985b06b4f895e30827b5bf1cfa787c12875080a75d654c1931c457baace9d7838db03f288a1e0d23575a24c5f5cca9e0b2ae44c458972a89c906396ccfe3218524671f1aa85f122dfca40b371e29a3b2efd435cddd59c7606df5c18c60e0c452ddca57f3451c4901288a9079d55e362ff6a14631388fcb8f09ea76af3ab3c2fa9131ba0e40af6951f8dcc688cfdbd6973fad1d5bd95c316736b218ef9aaacdbaea1ed6321124ecf6e71d64f02ae2f503bc1ce5da894a26e2396058f23bd83ab92f97c353db775a86b6317d5f2ffcc43570f6ea0f56752bba669b3dd4a9c8f644c0f0db073bcca7b427ce2934320f4906d1601dde1056ba937f25ee176e7985bbc62d3c01bd5ebcbb84b71edb380d11e808c7298f718c530eac252a1bd92430add1a9b9da8488547c298878f88010c5b6db6f9e042cd046684346f8367e7ceaa39fa8ff78bed278e1ffa80a10d11bfe7a27b8ba5e17cf729e79c0b6953bc6624f50ee2f5345bef4c1891806eb1a92fcb71da1dc6284f431ee63e5d14bca14c0493761f4966a2a73bc88705c222556655237aceacd4cedbb60be5dfda6ff5af2cc4e399a3eaa7019d41e9cb31cf470c8fd39fc0f7c345eb7f3f7f9105d86397fc2e130eae503660deb0c7f0661aa20b638cd35b3ff3adf9290d3312a94da4a68db2875a810aad0544414314ff5be2dbfc055057793602605af96f9bed5702d0f38a740ed45eda66bb57289b2ddf879e120f69707a4780e98f4ab2d36b357ad3f5f55d2342e5b44ce5f438788a60b5f723f1644a50d8552235e86acd2ce4e3dcffed6f8d1c80b40bb1d3097bc568b592d4bf457cb36f61c55b575693a977406fffe6ab334ac585f03f9648014434b8230c621253f4d54866c91827fb59a5edf489f2bb43b3b57a31e0caefc71f348640401b8bc84bef3f917e05915cdd738ce414cfc15a684229b82334aa567659dec678070a64c7566f9c38f6610e3634a8ea4e0f07c2cf2f1fb395136506cca2643a10b115c76fe9ef8b46442637d675d6ce90dbd4569496b94b6a31b19e47d9f8b78d87396b4f0db99bb554b70dda018b2de4cd7d51bb266bb82e2bd5ef30f725b6f5f694d8dca6bba28385efbdaa09e90e2e50e5cfc4673ff0719044e386b579b435c15fcd514bb9087a4edddc06167cc694a0f53aeb57853686d35025e62e2dcd70ff66ad07a86d96f602681fe35a6a9f8b3ef4607cc18ca9fb0ce483366027b1a4db2a8731f1e5d743ec77dac67185d5e9f7176d6d6d98941b8e6ed4ca6c6642af71e70b2c46238d1d0720144d0bc9451fc8243f82c1a69d279e554eaffc667198da6a17ccb270ee36e691902fce124eb391ff66e0ef4480dc1b901d6996cdfdb150b452aec13e5366c5cb6eae7e2906b35abc1a1e4d275b3f3bb68df2cee11fd598f34a079d82ab052a3f9abd34bc5675494e10da11c9ebb590e3cff474ea44184309ee80f05f7790464680ab266ed6b816b2b40258672fed7a24be291e6a6942717a17de4837f171c76b479328db435f6b8cbc0383ec127dab067427cd65ee86cc7718979b7d3ebb403168157cf6d6947ae67a22bdb92248b8d206c7dcc385d1e57ca819a34512a54b6a4e525c60354f0f5df72ae2e21d71ebc36ccc6da1ffe4ce36213c18d5fd917810954e432066a6bdc23eb937882cce4e4183dae250acadddf3ffbaf2aef2b2b4ea3ebd2f9f155f02f62a2ac5f7035460a5130ac840743199b5fc62bae09672aa8981765e44751e785d25a5c1a6fc2bdb6f458837ee15b35a4154a17d021b3f1148ed0986d9c6d304f7fba9b84fb9cb77b5f457f9ba6c6e0dd8bb1753f0ff3601a2051ab96f23b69a1b2a30e34bed3cca23e13f41b79d4d08d1822300f45ca7c926f4f6f935a98ee3ad0ec34713ae42560a9717945dad7ba848da080290829e26f73774dedb03e560f4adbbb5df78fa164c90ae722bce23c8502a2bd5804bb7242edde8d16c7e1cb0589148471859068482e708044a101aa4e22e7347a50c87aeee8957835c3432fdffe1c130fd0773baea920b0eb8564ad8219b1088f3dbfab9c506447849b070c79f5061825e53070a8543a5c7964c965ab679e567a8084d2f4341fc0daf24df28f991770b4b544e28c32ca3fcc332dc41b5e72b896d1d3554a3ca8f883332307e846d696664ba81e4d5cf432017c94593e8bb7f36c48e58d34fc0f4f9b230112fa7c70a6e1c80c33de3dca446599c8af39dddba639f8f9fecf0e07313bb4ab1a7974ef534ad372b08bea16443e733b66aca0c252497f65d68a1f2ce5c80654dce14eceb91a96203d8e627d51e11e84065eac10e5f0e6a7addf5c12c32f0c72436df210717a6ac7cd6dfc9bb6f275a111e8e3e555dc405b782dc659352fa59d271cccc3b652ae3c44d1398420b194f0f76f5b12ca3d03077e2a63b2284c9b0454e868304dada1e65a77b88adb25bea6182fa8a2fe2316c6f019adcffae0d3fe3bade5aecd4d3cd02de2ad8bc4b3543c6174f6f419c6daffbcd553a23db75d5ffc6131c38dfb6c75fb01124e0741bf5d70b85269cfc09e376456bb9f755eb76776a8d295a29099be72b7d423e9f4aa44ba9ba6907118ca40496180b7eff6927ff47d039072ac7660b86ceabab8ff79335479805e040cacf7b37cb4c77c45be745f241929ea5c631a97df01d6ea81c61f1e4d52531c6029d6dd5367bcce9863a74510270f098c5dff0492f8cee4b761e3ded4c9fbd5a5db127b4ff57debbd13340e6b81b36f84203ebb053d42c54b528831b60dec01cfca1b907c913a74086e7c0b2e8c61723404e95077a61d8519ba2d1a52f16969f7e2167e5e35b9df261e6069240192c23d8315a8b526314d3cf019683976754934356a9106fb70fbce6c3995af9d4403d0c9b9b1d7d7f1bce69ea8090162ee37de43fd8085807e45edd14fde14b01231e39d44cc7262a4bc8ee3641a6569604abb2e141320b12548b039a9eabaafffc295375f4a59f8a35e28463b3187953eebfa6775d3f018997bcd1659eb3d5eed1afffa9838ac9add0fe6ce99c018cb8c282ddcde0ea456d42d80809e8686e8ac47b61c94b080f3b3b8f64e2946d7d8663cfe23507ae4b1f84e24cc5df735e823e926e1013533ec9fea861271fe5fa9d8ec69ce170af604a85ba9bf7a64cd969926643324198ae41d434a7df9f36abf241f3eba37a9a87f3878be566a1d65c80b5846c6972037ce6bba9cfef52155bfe4889a4c1b8c7f10880330f3d1d4b1f749b62e1e4f44321efc45c1284b6e87f05186d7d54073b4f703dbaa668448ff5c628dccf862df91bc0f288242701bd27e63610d6d1c6f8b1122c91d1779ff7b07656323f143c42ceb53efe3f7bf60f7f2261d262492c39071f869d6c57a575a60bdfe09eaaea868e954c36a8b6559be81309a08d73a6dc8a27c63ebd97f979f7736ca9d3a24ce28df3696639c34f9fe10ff6842f03ba59814e8ceb0a9fb6b7ec56472c00c62c248ea75f3bd841c77fc7d219c11def81223d7ca5beb538830472701b96b72673cb8a8618701a2c61eba8a63187c0be3e03f7e1da654cd0ddc0e96a7f55cd1b97d3cff7284b33fb6239d6b15a2f46b6d23ede2524e4801972d73babd0db12b696b66624d680db5a755991d23fd1aa94f7753bffb8ba83847f26925a36f9f3f8f06be0514bae3f2f63ae172a1014dc9a62a08ba2b83da078ac7036af07e83c899390e90186bf45f7338207acd9655df09b51d8db26b59300f2ae539c2af509fdc7f613187af0936e6fcb0da60e54e552caf52f89b39c04199a32ab3</script>
  <div class="hbe hbe-content">
    <div class="hbe hbe-input hbe-input-default">
      <input class="hbe hbe-input-field hbe-input-field-default" type="password" id="hbePass">
      <label class="hbe hbe-input-label hbe-input-label-default" for="hbePass">
        <span class="hbe hbe-input-label-content hbe-input-label-content-default">您好，这里需要密码。</span>
      </label>
    </div>
  </div>
</div>
<script data-pjax src="/blog/lib/hbe.js"></script><link href="/blog/css/hbe.style.css" rel="stylesheet" type="text/css">
      </section>

      
      
        <nav class="article-nav">
          
          
            <div class="article-nav-item layout-padding">
  <article class="card-container article-nav-card content-padding--primary soft-size--large soft-style--box">
    
    <div class="card-text">
      
        <a href="/blog/2024/03/29/SQL%E8%A7%A3%E6%9E%90%E5%B7%A5%E5%85%B7/" itemprop="url">
          <h2 class="card-text--title text-ellipsis">SQL解析工具</h2>
        </a>
      
      <div class="card-text--row">Older</div>
    </div>
  </article>
</div>
          
        </nav>
      

      <section class="page-message-container layout-padding">
        


  
  

  
  


      </section>
    </div>
    <div class="widget-info">
      <section class="widget-author widget-item layout-margin content-padding--primary soft-size--large soft-style--box">
  <div class="widget-body">
    
      <img src="/blog/icon.gif" class="soft-size--round soft-style--box" alt="QAQ">
    
    
      <h2>QAQ</h2>
    
    
      <p>贵在坚持</p>
    

    <div class="count-box">
      <div class="count-box--item">
        <svg class="icon icon-article" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg">
  <path d="M240.51564747 647.74217627h196.07203239c16.59071043 0 30.16492806-13.57421762 30.16492805-30.16492806V165.10332731c0-33.18142087-30.16492806-60.32985613-60.32985612-60.32985611H245.04038668C225.43318342 104.7734712 210.35071939 119.85593522 210.35071939 139.46313845V617.57724821c0 16.59071043 13.57421762 30.16492806 30.16492808 30.16492806z m663.62841731-452.47392089v482.63884894c0 33.18142087-27.14843525 60.32985613-60.32985612 60.32985613H180.18579134c-33.18142087 0-60.32985613-27.14843525-60.32985612-60.32985613V195.26825538c-49.77213131 0-90.49478418 40.72265287-90.49478417 90.49478417v452.4739209c0 49.77213131 40.72265287 90.49478418 90.49478417 90.49478417h286.56681657c16.59071043 0 30.16492806 13.57421762 30.16492807 30.16492807s13.57421762 30.16492806 30.16492805 30.16492806h90.49478418c16.59071043 0 30.16492806-13.57421762 30.16492805-30.16492806s13.57421762-30.16492806 30.16492807-30.16492807h286.56681657c49.77213131 0 90.49478418-40.72265287 90.49478417-90.49478417V285.76303955c0-49.77213131-40.72265287-90.49478418-90.49478417-90.49478417zM587.41232014 647.74217627h191.54729318c19.60720323 0 34.68966726-15.08246403 34.68966729-34.68966727V134.93839925c0-16.59071043-13.57421762-30.16492806-30.16492808-30.16492805H617.57724821c-30.16492806 0-60.32985613 27.14843525-60.32985612 60.32985611v452.4739209c0 16.59071043 13.57421762 30.16492806 30.16492805 30.16492806z" fill="currentColor"></path>
</svg>
        <span>22</span>
      </div>
      <div class="count-box--item">
        <svg class="icon icon-categories" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg">
  <path d="M900.3614811 257.09082106h-339.81629553l-67.96326003-101.9448889c-19.41807444-29.12711113-48.54518557-43.69066667-82.52681443-43.69066667H123.6385189c-53.39970333 0-97.09036999 43.69066667-97.09037113 97.09036999v582.54222222c0 53.39970333 43.69066667 97.09036999 97.09037113 97.09037002h776.7229622c53.39970333 0 97.09036999-43.69066667 97.09037113-97.09037002V354.18119104c0-53.39970333-43.69066667-97.09036999-97.09037113-97.09036998z m-97.09036999 242.72592554H220.72888889c-24.27259221 0-48.54518557-24.27259221-48.54518556-48.54518556s24.27259221-48.54518557 48.54518556-48.54518444h582.54222222c24.27259221 0 48.54518557 24.27259221 48.54518556 48.54518444s-24.27259221 48.54518557-48.54518556 48.54518556z" fill="currentColor"></path>
</svg>
        0
      </div>
      <div class="count-box--item">
        <svg class="icon icon-tags" viewBox="0 0 1098 1024" version="1.1" xmlns="http://www.w3.org/2000/svg">
  <path d="M283.42180005 272q0-28.38857157-20.09142843-48.48000001t-48.47999998-20.09142842-48.48000002 20.09142842-20.09142846 48.48000001 20.09142846 48.48 48.48000002 20.09142843 48.47999998-20.09142843 20.09142843-48.48zM855.0332285 580.57142843q0 28.38857157-19.81714313 48.2057147l-263.03999997 263.58857157q-20.9142853 19.81714313-48.75428534 19.81714312-28.38857157 0-48.20571468-19.81714312l-383.04-383.58857157q-20.36571468-19.81714313-34.55999999-54.10285688t-14.19428534-62.6742853l0-222.85714313q0-27.84000002 20.36571469-48.20571469t48.2057147-20.36571466l222.85714313 0q28.38857157 0 62.6742853 14.19428529t54.65142842 34.55999999l383.04000001 382.49142843q19.81714313 20.9142853 19.81714314 48.75428532zM1060.74751475 580.57142843q0 28.38857157-19.81714313 48.2057147l-263.04 263.58857157q-20.9142853 19.81714313-48.75428531 19.81714312-19.26857155 0-31.61142843-7.47428531t-28.38857159-24.13714314l251.79428534-251.7942853q19.81714313-19.81714313 19.81714308-48.20571469 0-27.84000002-19.81714308-48.75428531l-383.04000001-382.49142845q-20.36571468-20.36571468-54.65142842-34.55999999t-62.67428532-14.19428534l120 0q28.38857157 0 62.67428532 14.19428534t54.65142842 34.55999999l383.03999998 382.49142845q19.81714313 20.9142853 19.81714314 48.75428531z" fill="currentColor"></path>
</svg>
        8
      </div>
    </div>
  </div>
</section>

      

      
<section class="widet-notice widget-item layout-margin content-padding--primary soft-size--large soft-style--box">
  <div class="widget-title">
    <svg class="icon icon-notice" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg">
  <path d="M512 945.02305225v28.15620663a24.27259221 24.27259221 0 0 1-24.27259221 24.27259335H394.0352a48.54518557 48.54518557 0 0 1-41.74885888-23.78714112l-110.68302222-184.47170332a132.04290333 132.04290333 0 0 1-17.47626667-48.54518557h118.4502511a200.97706667 200.97706667 0 0 1 76.21594113 14.56355556l20.38897777 133.49925888a48.54518557 48.54518557 0 0 0 36.40888888 27.67075555l16.01991111 2.91271112a24.27259221 24.27259221 0 0 1 20.38897778 25.72894889zM997.45185223 463.45481443a194.18074112 194.18074112 0 0 1-38.8361489 116.50844445 24.75804445 24.75804445 0 0 1-36.4088889 0l-34.95253333-34.95253333a24.27259221 24.27259221 0 0 1-2.91271111-30.58346667 97.09036999 97.09036999 0 0 0 0-106.79940665 24.27259221 24.27259221 0 0 1 2.91271111-30.58346666l34.95253333-34.95253334a24.75804445 24.75804445 0 0 1 18.93262223-7.28177777 26.2144 26.2144 0 0 1 17.47626667 9.70903665A194.18074112 194.18074112 0 0 1 997.45185223 463.45481443z m-194.18074112-388.36148111v776.72296335a48.54518557 48.54518557 0 0 1-48.54518556 48.54518443h-28.64165888a48.54518557 48.54518557 0 0 1-33.98163001-14.07810332l-145.63555556-143.20829668A291.27111111 291.27111111 0 0 0 342.57730333 657.63555556H172.18370333a145.63555556 145.63555556 0 0 1-145.63555556-145.63555556v-97.09036999a145.63555556 145.63555556 0 0 1 145.63555556-145.63555556h170.3936a291.27111111 291.27111111 0 0 0 206.31703779-85.43952668l145.63555555-143.20829554a48.54518557 48.54518557 0 0 1 33.98162888-14.07810446H754.72592555a48.54518557 48.54518557 0 0 1 48.54518556 48.54518555z" fill="currentColor"></path>
</svg>
    <span>NOTICE</span>
  </div>
  <div class="widget-body">
    <p>flex-block主题部分重构，详情查看https://github.com/miiiku/flex-block</p>
  </div>
</section>


      <section class="widget-categorys widget-item layout-margin content-padding--primary soft-size--large soft-style--box">
  <div class="widget-title">
    <svg class="icon icon-categories" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg">
  <path d="M900.3614811 257.09082106h-339.81629553l-67.96326003-101.9448889c-19.41807444-29.12711113-48.54518557-43.69066667-82.52681443-43.69066667H123.6385189c-53.39970333 0-97.09036999 43.69066667-97.09037113 97.09036999v582.54222222c0 53.39970333 43.69066667 97.09036999 97.09037113 97.09037002h776.7229622c53.39970333 0 97.09036999-43.69066667 97.09037113-97.09037002V354.18119104c0-53.39970333-43.69066667-97.09036999-97.09037113-97.09036998z m-97.09036999 242.72592554H220.72888889c-24.27259221 0-48.54518557-24.27259221-48.54518556-48.54518556s24.27259221-48.54518557 48.54518556-48.54518444h582.54222222c24.27259221 0 48.54518557 24.27259221 48.54518556 48.54518444s-24.27259221 48.54518557-48.54518556 48.54518556z" fill="currentColor"></path>
</svg>
    <span>CATEGORYS</span>
  </div>
  <div class="widget-body">
    <ul class="categorys-list">
      
    </ul>
  </div>
</section>

      <section class="widget-tags widget-item  layout-margin content-padding--primary soft-size--large soft-style--box">
  <div class="widget-title">
    <svg class="icon icon-tags" viewBox="0 0 1098 1024" version="1.1" xmlns="http://www.w3.org/2000/svg">
  <path d="M283.42180005 272q0-28.38857157-20.09142843-48.48000001t-48.47999998-20.09142842-48.48000002 20.09142842-20.09142846 48.48000001 20.09142846 48.48 48.48000002 20.09142843 48.47999998-20.09142843 20.09142843-48.48zM855.0332285 580.57142843q0 28.38857157-19.81714313 48.2057147l-263.03999997 263.58857157q-20.9142853 19.81714313-48.75428534 19.81714312-28.38857157 0-48.20571468-19.81714312l-383.04-383.58857157q-20.36571468-19.81714313-34.55999999-54.10285688t-14.19428534-62.6742853l0-222.85714313q0-27.84000002 20.36571469-48.20571469t48.2057147-20.36571466l222.85714313 0q28.38857157 0 62.6742853 14.19428529t54.65142842 34.55999999l383.04000001 382.49142843q19.81714313 20.9142853 19.81714314 48.75428532zM1060.74751475 580.57142843q0 28.38857157-19.81714313 48.2057147l-263.04 263.58857157q-20.9142853 19.81714313-48.75428531 19.81714312-19.26857155 0-31.61142843-7.47428531t-28.38857159-24.13714314l251.79428534-251.7942853q19.81714313-19.81714313 19.81714308-48.20571469 0-27.84000002-19.81714308-48.75428531l-383.04000001-382.49142845q-20.36571468-20.36571468-54.65142842-34.55999999t-62.67428532-14.19428534l120 0q28.38857157 0 62.67428532 14.19428534t54.65142842 34.55999999l383.03999998 382.49142845q19.81714313 20.9142853 19.81714314 48.75428531z" fill="currentColor"></path>
</svg>
    <span>TAGS</span>
  </div>
  <div class="widget-body">
    <div class="tags-cloud">
      <a href="/blog/tags/Activiti/" style="font-size: 13.33px;" class="tags-cloud-3">Activiti</a> <a href="/blog/tags/Nginx/" style="font-size: 10px;" class="tags-cloud-0">Nginx</a> <a href="/blog/tags/PG%E6%95%B0%E6%8D%AE%E5%BA%93/" style="font-size: 13.33px;" class="tags-cloud-3">PG数据库</a> <a href="/blog/tags/goView/" style="font-size: 13.33px;" class="tags-cloud-3">goView</a> <a href="/blog/tags/java/" style="font-size: 20px;" class="tags-cloud-10">java</a> <a href="/blog/tags/vue/" style="font-size: 16.67px;" class="tags-cloud-7">vue</a> <a href="/blog/tags/%E5%AF%BC%E5%87%BAExcel/" style="font-size: 16.67px;" class="tags-cloud-7">导出Excel</a> <a href="/blog/tags/%E6%8A%A5%E9%94%99/" style="font-size: 10px;" class="tags-cloud-0">报错</a>
    </div>
  </div>
</section>
    </div>
  </article>
</div>

    <!-- footer container -->
<footer id="footer" class="footer">
  <div class="footer-container">
    
    <div class="social-icons">
      
        
      
        
      
        
      
        
          <a href="https://github.com/miiiku/" class="soft-size--primary soft-style--box" target="_blank" rel="noopener noreferrer">
            <svg class="icon icon-github" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg">
  <path d="M64.6 512c0 195.6 125.4 361.9 300.1 422.9 23.5 5.9 19.9-10.8 19.9-22.2v-77.6c-135.8 15.9-141.3-74-150.5-89-18.5-31.5-61.9-39.5-49-54.5 31-15.9 62.5 4 98.9 58 26.4 39.1 77.9 32.5 104.1 26 5.7-23.5 17.9-44.5 34.7-60.9-140.7-25.2-199.4-111.1-199.4-213.3 0-49.5 16.4-95.1 48.4-131.8-20.4-60.6 1.9-112.4 4.9-120.1 58.2-5.2 118.5 41.6 123.3 45.3 33.1-8.9 70.8-13.7 112.9-13.7 42.4 0 80.3 4.9 113.5 13.9 11.3-8.6 67.3-48.8 121.4-43.9 2.9 7.7 24.7 58.3 5.5 118.1 32.5 36.8 49 82.8 49 132.4 0 102.3-59 188.3-200.2 213.2 23.5 23.3 38.1 55.5 38.1 91.1v112.7c0.8 9 0 17.9 15.1 17.9C832.7 877 960.4 709.4 960.4 512.1c0-247.5-200.6-447.9-447.9-447.9C265 64.1 64.6 264.5 64.6 512z"></path>
</svg>
          </a>
        
      
        
          <a href="https://twitter.com/guanquanhong" class="soft-size--primary soft-style--box" target="_blank" rel="noopener noreferrer">
            <svg class="icon icon-twitter" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg">
  <path d="M962.285714 233.142857q-38.285714 56-92.571429 95.428571 0.571429 8 0.571429 24 0 74.285714-21.714286 148.285714t-66 142-105.428571 120.285714-147.428571 83.428571-184.571429 31.142857q-154.857143 0-283.428571-82.857143 20 2.285714 44.571429 2.285714 128.571429 0 229.142857-78.857143-60-1.142857-107.428571-36.857143t-65.142857-91.142857q18.857143 2.857143 34.857143 2.857143 24.571429 0 48.571429-6.285714-64-13.142857-106-63.714286t-42-117.428571l0-2.285714q38.857143 21.714286 83.428571 23.428571-37.714286-25.142857-60-65.714286t-22.285714-88q0-50.285714 25.142857-93.142857 69.142857 85.142857 168.285714 136.285714t212.285714 56.857143q-4.571429-21.714286-4.571429-42.285714 0-76.571429 54-130.571429t130.571429-54q80 0 134.857143 58.285714 62.285714-12 117.142857-44.571429-21.142857 65.714286-81.142857 101.714286 53.142857-5.714286 106.285714-28.571429z"></path>
</svg>
          </a>
        
      
    </div>
     
    <p>&copy; 2024 <a href="/" target="_blank">QAQ</a></p>

    

    <p>Powered by <a href="https://hexo.io" target="_blank" rel="noopener noreferrer">Hexo</a> Theme - <a href="https://github.com/miiiku/flex-block" target="_blank" rel="noopener noreferrer author">flex-block</a></p>

    <p>
      <a href="javascript:;" id="theme-light">🌞 浅色</a>
      <a href="javascript:;" id="theme-dark">🌛 深色</a>
      <a href="javascript:;" id="theme-auto">🤖️ 自动</a>
    </p>
  </div>
</footer>
  </div>

  <div class="back-to-top-fixed soft-size--round soft-style--box">
    <svg class="icon icon-back-to-top" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg">
      <path d="M725.333333 426.666667c-12.8 0-21.333333-4.266667-29.866667-12.8l-213.333333-213.333333c-17.066667-17.066667-17.066667-42.666667 0-59.733333s42.666667-17.066667 59.733333 0l213.333333 213.333333c17.066667 17.066667 17.066667 42.666667 0 59.733333C746.666667 422.4 738.133333 426.666667 725.333333 426.666667z"></path>
      <path d="M298.666667 426.666667c-12.8 0-21.333333-4.266667-29.866667-12.8-17.066667-17.066667-17.066667-42.666667 0-59.733333l213.333333-213.333333c17.066667-17.066667 42.666667-17.066667 59.733333 0s17.066667 42.666667 0 59.733333l-213.333333 213.333333C320 422.4 311.466667 426.666667 298.666667 426.666667z"></path>
      <path d="M512 896c-25.6 0-42.666667-17.066667-42.666667-42.666667L469.333333 170.666667c0-25.6 17.066667-42.666667 42.666667-42.666667s42.666667 17.066667 42.666667 42.666667l0 682.666667C554.666667 878.933333 537.6 896 512 896z"></path>
    </svg>
  </div>

  
  <!-- aplayer -->


<!-- dplayer -->


<!-- copy button  -->
<script src="https://cdn.jsdelivr.net/npm/clipboard@2.0.11/dist/clipboard.min.js"></script>

<!-- https://clipboardjs.com/ -->


<script type="text/javascript">
	(function () {
		function getCodeType (elem) {
			const classs = Array.from(elem.classList.values());
			if (classs && classs.length > 1) {
				return classs[1];
			}
			return "plain";
		}

		window.addEventListener("DOMContentLoaded", () => {
			const copyBtnClass = "copy-btn";
			//  instantiate clipboardjs 
			const clipboard = new ClipboardJS('.' + copyBtnClass);

			clipboard.on('success', function (e) {
				console.info('Action:', e.action);
				console.info('Text:', e.text);
				console.info('Trigger:', e.trigger);
				if (e.trigger) {
					e.trigger.classList.add("copied");
					setTimeout(() => {
						e.trigger.classList.remove("copied");
					}, 3000);
				}
				e.clearSelection();
			});

			clipboard.on('error', function (e) {
				console.error('Action:', e.action);
				console.error('Trigger:', e.trigger);
			});

			document.querySelectorAll('figure.highlight').forEach((elem) => {
				const codeContent = elem.querySelector("td.code");
				const copyButton = document.createElement('button');
				copyButton.setAttribute("class", copyBtnClass);
				copyButton.setAttribute("title", "Copy Code");
				copyButton.setAttribute("data-clipboard-text", codeContent.innerText);
				elem.insertBefore(copyButton, elem.children[0]);
			});
		})
	})();
</script>








  


  


  




<script src="/blog/js/script.js"></script>


  
  <!-- 尾部用户自定义相关内容 -->
</body>
</html>
